package io.robe.mail; import org.junit.FixMethodOrder; import org.junit.Test; import javax.activation.DataSource; import javax.mail.util.ByteArrayDataSource; import java.util.*; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; @FixMethodOrder public class MailItemTest { MailItem item = new MailItem(); @Test public void getId() throws Exception { item.setId("id"); assertEquals("id", item.getId()); } @Test public void getTitle() throws Exception { item.setTitle("title"); assertEquals("title", item.getTitle()); } @Test public void getBody() throws Exception { item.setBody("body"); assertEquals("body", item.getBody()); } @Test public void getAttachments() throws Exception { List<DataSource> sources = new LinkedList<DataSource>(); sources.add(new ByteArrayDataSource("attachment1", "text")); sources.add(new ByteArrayDataSource("attachment2", "text")); item.setAttachments(sources); assertEquals(sources, item.getAttachments()); } @Test public void getSender() throws Exception { item.setSender("sender"); assertEquals("sender", item.getSender()); } @Test public void getReceivers() throws Exception { List<String> receivers = new LinkedList<>(); receivers.add("receiver1"); receivers.add("receiver2"); item.setReceivers(receivers); assertEquals(receivers, item.getReceivers()); receivers.add("receiver3"); item.setReceivers("receiver1", "receiver2", "receiver3"); assertEquals(receivers, item.getReceivers()); } @Test public void getEvent() throws Exception { MailEvent event = new MailEvent() { @Override public void before(MailItem item) { } @Override public void success(MailItem item) { } @Override public void error(MailItem item, Exception e) { } }; item.setEvent(event); assertEquals(event, item.getEvent()); } @Test public void getHeaders() throws Exception { Map<String, String[]> headers = new HashMap<>(); headers.put("1", new String[]{"a", "b"}); headers.put("2", new String[]{"c", "d"}); item.setHeaders(headers); assertEquals(headers, item.getHeaders()); } @Test public void constructorAndToStringAndHash() throws Exception { MailItem item1 = new MailItem("title", "body", (DataSource) null, "sender", "receiver"); MailItem item2 = new MailItem("title", "body", (DataSource) null , "sender", Arrays.asList("receiver")); item1.setId("1"); item2.setId("1"); assertEquals(item1, item2); MailItem item3 = new MailItem("title", "body", (List<DataSource>) null, "sender", "receiver"); MailItem item4 = new MailItem("title", "body", (List<DataSource>) null , "sender", Arrays.asList("receiver")); item3.setId("1"); item4.setId("1"); assertEquals(item3, item4); assertEquals(item1.toString(),item2.toString()); assertEquals(item1.hashCode(),item2.hashCode()); } @Test public void equalsTest(){ MailItem item1 = new MailItem("title", "body", (DataSource) null, "sender", "receiver"); assertEquals(item1, item1); Object item2 = new Object(); assertNotEquals(item1,item2); } }